package com.xxwy.stack.practice.leetcode;

import java.util.Stack;

/**
 * @author xxwy
 * 匹配括号（）{}[]
 */
public class ValidParenthese {

    private boolean isValid(String s){
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if(c=='('|| c=='{'|| c=='['){
                //压入栈
                stack.push(c);
            }else {
                if(stack.isEmpty()){
                    return false;
                }
                char topChar = stack.pop();
                if(c=='}'&& topChar !='{'){
                    return false;
                }
                if(c==')' && topChar!='('){
                    return false;
                }
                if(c==']'&& topChar!='['){
                    return false;
                }

            }
        }
        return stack.isEmpty();
    }

    public static void main(String[] args) {
        ValidParenthese validParenthese = new ValidParenthese();
        boolean valid = validParenthese.isValid("[](){(}");
        System.out.println(valid);
    }
}
